import { string } from "vue-types"

// 配置属性信息
export interface ConfigAttributeInfo {
  propertyId: string | number
  dataformatId: string
  propertyType: number // 0运行参数 1健康参数 2辅助参数
  name: string
  identifier: string
  number: string
  required: number // 0非必选 1必选 2是否必选
  dataType: string // fixed/bool/int32/float/double/text/enum/json/array
  valueRange?: string
  defaultValue?: string
  unit?: string
  uiLink?: string
  remark?: string
  readWriteMode?: string // readwrite读写 readonly只读
  status: number // 0停用 1启用
  protocolVersionId?: string
  createTime?: string
  updateTime?: string
  createBy?: string
  updateBy?: string
}

// 查询参数
export interface ConfigAttributeQuery {
  pageNum?: number
  pageSize?: number
  name?: string
  identifier?: string
  dataType?: string
  propertyType?: number
  status?: number
  dataformatId?: string
}

// 导出参数
export interface ConfigAttributeExportParams {
  propertyIds?: string[]
  name?: string
  identifier?: string
  dataType?: string
  propertyType?: number
  status?: number
  dataformatId?: string
}

// 分页响应
export interface ConfigAttributePageResult {
  total: number
  rows: ConfigAttributeInfo[]
}

// API响应
export interface ApiResponse<T = any> {
  code: number
  msg: string
  data: T
}

// 删除参数
export interface ConfigAttributeDeleteParams {
  propertyIds: string[]
}

// 表单数据
export interface ConfigAttributeFormData {
  propertyId?: string | number
  dataformatId: string
  propertyType: number | string // 0运行参数 1健康参数 2辅助参数
  name: string
  identifier: string
  number: string
  required: number // 0非必选 1必选 2是否必选
  dataType: string // fixed/bool/int32/float/double/text/enum/json/array
  valueRange?: string
  defaultValue?: string
  unit?: string
  uiLink?: string
  remark?: string
  readWriteMode?: string // readwrite读写 readonly只读
  status: number // 0停用 1启用
  protocolVersionId?: string
}